Fix Pcre2.exec_all for non-consuming patterns
          #5
        
          
      
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
At present,
Pcre2.exec_alldoes not return the full set of captures when matching patterns containing non-consuming captured subpatterns such as lookahead assertions, falsely detecting the end of the matched set before reaching the end of the string. In order to resolve this issue, I have implemented the algorithm recommended by the PCRE2 project for global regex matching, allowing for zero-length captures to be properly matched and returned byexec_all.As a demonstration, prior to this patch:
And after this patch:
Additionally, the test suite has been expanded to cover a number of evaluation scenarios for
exec_all, including zero-length matches such as those shown above.